//路由守卫
//引入路由
import router from './index.js';

//引入 store
import store from '../store/index';
import { Message } from 'element-ui';
//不需要守卫的页面放到白名单
const whiteList = ['/login'];

const typeList = ["/account/account_list","/account/add_account"];
//路由守卫
/*
全局守卫（全局前置守卫、全局的后置钩子、全局解析守卫）、组件级守卫（进入组件的守卫、离开组件的守卫、修改组件的守卫）、路由独享守卫

beforeEach ((to,from,next)=>{})
*/
//需求：在登录页面，没登录就放行，登录跳转到 首页；非登录页面，如果已经登录，放行；没登录，跳转到登录页面
router.beforeEach((to, from, next) => {
    console.log("路由守卫运行了",to,from,next);
    if(store.getters.token&&store.getters.token!=""){
        //已经登录了
        if(to.path == '/login'){
            next("/home/dashboard");
        }else if(typeList.indexOf(to.path) != -1){ //判断登录的用户是否有权限访问这个页面
            if(store.getters.type == "1"){
                //超级管理员
                next();
            }else{
                //非超级管理员,越权
                console.log("退出登录");
                Message.error("您没有权限访问该页面,请使用超级管理员账号重新登录");
                //发送退出登录的动作
                store.dispatch('LogoutAction');
            }
        }
        
        else{
            next();
        }
    }else{
        //没有登录
        if(whiteList.indexOf(to.path)!=-1){
            next();
        }else{
            next("/login");
        }
    }
   
});